#ifndef TURNSCHEDULE_HPP_INCLUDED
#define TURNSCHEDULE_HPP_INCLUDED

#include <map>
#include <vector>

class ITurnTaker
{
public:
	virtual ~ITurnTaker() { }

	virtual bool takeTurn() = 0;
};

class TurnSchedule
{
public:
	static void clear();
	static void run();
	static void scheduleTurn(ITurnTaker* obj, unsigned int ticks);

private:
	static unsigned int Ticks;

	static std::map<unsigned int, std::vector<ITurnTaker*> > Schedule;
};

#endif
